# SPDX-FileCopyrightText: 2025 MounRiver Studio <https://mounriverstudio.com/>
# SPDX-License-Identifier: BSD-3-Clause
# Author: Azolla <https://gitee.com/azolla/>
# Date: 2025-04-21

# 执行 Git 命令获取最新tag号和commit值，并将结果存储到 TAG_VERSION 变量中
execute_process(
    COMMAND git describe --long --tag --dirty --always
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    OUTPUT_VARIABLE TAG_VERSION
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

# 打印 TAG_VERSION 变量的值
message(STATUS "${O}Git Version Tag:  ${TAG_VERSION}${E}")

# 执行 Git 命令获取最近一次提交的作者信息
execute_process(
    COMMAND git log -1 --format=%an
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    OUTPUT_VARIABLE COMMIT_AUTHOR
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

# 执行 Git 命令获取最新提交者的邮箱，并将结果存储到 AUTHOR_EMAIL 变量中
execute_process(
    COMMAND git log -1 --format=%ae
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    OUTPUT_VARIABLE AUTHOR_EMAIL
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

# 打印 AUTHOR_EMAIL 变量的值
message(STATUS "${O}Git Author Email: ${COMMIT_AUTHOR} <${AUTHOR_EMAIL}>${E}")

# 执行 Git 命令获取最新的 commit id，并将结果存储到 COMMIT_HASH 变量中
execute_process(
    COMMAND git rev-parse HEAD
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    OUTPUT_VARIABLE COMMIT_HASH
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

# 打印 COMMIT_HASH 变量的值
message(STATUS "${O}Git Commit Hash:  ${COMMIT_HASH}${E}")

# # 生成 version.h 文件
# configure_file(
#     ${CMAKE_CURRENT_SOURCE_DIR}/version.h.in
#     ${CMAKE_CURRENT_BINARY_DIR}/version.h
# )

# 将生成的 version.h 文件添加到生成的头文件列表中
# target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
